package ar.edu.utn.frba.tadp.aterrizar;

import java.util.Date;

public class ConversorDeFechas {

	private Formato ISO = new ISO();
	private Formato Norteamericano = new Norteamericano();
	private Formato Latinoamericano = new Latinoamericano();
				
	public Date convertirFecha(String strFecha) {
		 Formato formato = this.getFormat(strFecha);
		 return(formato.convertir(strFecha));
	}

	public Formato getFormat(String strFecha) {
		if(strFecha.charAt(2) == '/') {
			return (this.Latinoamericano);
		} else {
			if (strFecha.charAt(2) == '-') {
				return (this.Norteamericano);
			} else {
				return (this.ISO);
			}
		}
}

	public int diferenciaEntre(Date unaFecha, Date otraFecha) {
		return Math.abs(diferenciaEnMilisegundosEntre(unaFecha, otraFecha)/(24*60*60*1000));
	}

	public int diferenciaEnMilisegundosEntre(Date unaFecha, Date otraFecha) {
		return (int) unaFecha.getTime() - (int) otraFecha.getTime();
	}

	public Boolean sosAnteriorA(Date unaFecha, Date otraFecha) {
		return diferenciaEnMilisegundosEntre(unaFecha, otraFecha)>0?false:true;
	}
	
}